package fr.afcepf.atod18.hotels.services.impl;

import java.util.List;

import javax.inject.Inject;
import javax.inject.Named;

import org.springframework.transaction.annotation.Transactional;

import fr.afcepf.atod18.hotels.dao.interfaces.IPaysDAO;
import fr.afcepf.atod18.hotels.dao.interfaces.IVilleDAO;
import fr.afcepf.atod18.hotels.entities.Pays;
import fr.afcepf.atod18.hotels.entities.Ville;
import fr.afcepf.atod18.hotels.services.interfaces.IServicePaysVille;

@Named
@Transactional
public class ServicePaysVille implements IServicePaysVille {
	@Inject
	private IVilleDAO daoVille;

	@Inject
	private IPaysDAO daoPays;

	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#createVille(fr.afcepf.atod18.hotels.entities.Ville)
	 */
	@Override
	public void createVille(Ville v) {
		daoVille.persist(v);
	}

	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#createPays(fr.afcepf.atod18.hotels.entities.Pays)
	 */
	@Override
	public void createPays(Pays p) {
		daoPays.persist(p);
	}

	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#getVilleByID(int)
	 */
	@Override
	public Ville getVilleByID( int Id ) {
		return daoVille.findById(Id);
	}
	
	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#getAllVille()
	 */
	@Override
	public List<Ville> getAllVille() {
		return daoVille.findAll();
	}
	
	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#getVilleByIdPays(java.lang.String)
	 */
	@Override
	public List<Ville> getVilleByIdPays( String IdPays ) {
		return daoVille.findByIdPays(IdPays);
	}
	
	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#getPaysByID(java.lang.String)
	 */
	@Override
	public Pays getPaysByID( String Id ) {
		return daoPays.findById(Id);
	}
	
	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#getAllPays()
	 */
	@Override
	public List<Pays> getAllPays() {
		return daoPays.findAll();
	}
	
	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#updateVille(fr.afcepf.atod18.hotels.entities.Ville)
	 */
	@Override
	public void updateVille(Ville v) {
		daoVille.merge(v);
	}

	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#updatePays(fr.afcepf.atod18.hotels.entities.Pays)
	 */
	@Override
	public void updatePays(Pays p) {
		daoPays.merge(p);
	}

	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#deleteVille(fr.afcepf.atod18.hotels.entities.Ville)
	 */
	@Override
	public void deleteVille(Ville v) {
		daoVille.remove(v);
	}

	/* (non-Javadoc)
	 * @see fr.afcepf.atod18.hotels.services.impl.IServicePaysVille#deletePays(fr.afcepf.atod18.hotels.entities.Pays)
	 */
	@Override
	public void deletePays(Pays p) {
		daoPays.remove(p);
	}
}
